package com.dd.probe.common.pojo.VO;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Author liuxianmeng
 * @CreateTime 2024/10/12 22:51
 * @Description 前端可用于展示的服务器（Linux）系统的信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("前端可用于展示的服务器系统的信息")
public class HostInfoVO {

    /**************** 操作系统信息 ****************/
    @ApiModelProperty("操作系统名称")
    private String osName;
    @ApiModelProperty("操作系统版本")
    private String osVersion;
    @ApiModelProperty("主机名")
    private String hostName;

    /**************** 系统负载 ****************/
    @ApiModelProperty("1分钟平均负载 以小数表示（非%）")
    private Double loadAverage1Minute;
    @ApiModelProperty("5分钟平均负载 以小数表示（非%）")
    private Double loadAverage5Minutes;
    @ApiModelProperty("15分钟平均负载 以小数表示（非%）")
    private Double loadAverage15Minutes;

    /**************** 内存信息 ****************/
    @ApiModelProperty("总内存 MB")
    private long memoryTotal;
    @ApiModelProperty("可用内存 MB")
    private long availableMemory;
    @ApiModelProperty("内存使用百分比 以小数表示（非%）")
    private Double memoryUsagePercentage;
    @ApiModelProperty("当前内存已使用量 MB")
    private long memoryUsed;
    @ApiModelProperty("当前物理内存空闲量 MB")
    private long memoryFree;

    /**************** CPU信息 ****************/
    @ApiModelProperty("CPU核心数")
    private int coreCount;
    @ApiModelProperty("CPU型号")
    private String cpuModel;
    @ApiModelProperty("CPU负载 以小数表示的负载（非%）")
    private Double cpuLoad;

    /**************** 磁盘信息 ****************/
    @ApiModelProperty("磁盘总大小 GB")
    private int diskTotal;
    @ApiModelProperty("磁盘已使用大小 GB")
    private int diskUsed;
    @ApiModelProperty("磁盘未使用大小 GB")
    private int diskFree;
    @ApiModelProperty("磁盘使用率 以小数表示（非%）")
    private Double diskUsagePercentage;

    /**************** 网络信息 ****************/
    @ApiModelProperty("接收字节率（kB/s）")
    private Double rxBytesRate;
    @ApiModelProperty("发送字节率（kB/s）")
    private Double txBytesRate;
}
